package version1;

import jdk.internal.util.xml.impl.Input;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/** 版本1-- 封装【拓展】
 * Mysql工具类
 * 1.数据库：地址、用户名、密码  私有属性--静态化【本类直接调用】
 * 2.静态方法【本类直接调用】getParam(String 外置文件路径)
 * 目的：使用方法调用外部文件 db_mysql.properties
 * db_mysql.properties 对应 Java Properties类：读取键值对形式信息
 * Properties类 提供方法 load() 读取配置文件信息【键值对-数据库基本信息】
 *
 * 3.通过封装概念--连接成功数据【通用一个类链接Mysql和Oracle】
 */
public class Mysql {
    //1.任何数据库具备：地址、用户名、密码---私有静态属性
    private static String url;
    private static String username;
    private static String password;
    //2.静态方法：getParam(String 路径)---链接数据库--读取信息
    //2.1 配置文件：键值对出现，保存数据库对应的基本信息
    public  static void getParam(String fileName) throws IOException {
        //2.2 Properties类--读取xxx.properties配置文件信息
        Properties p=new Properties();
        //2.3 外置文件读取---借助IO---搬运数据---InputStream
        //Mysql.class 表示当前 Mysql类的Class对象
        //getClassLoader() 获取当前类
        InputStream fis=
                Mysql.class.getClassLoader().getResourceAsStream(fileName);
        p.load(fis);
        //2.4 读取数据库基本信息【url、用户、密码】赋值给当前对象【url、用户、密码】
        url=p.getProperty("url");
        username=p.getProperty("username");
        password=p.getProperty("password");
    }

    public static void main(String[] args) throws IOException, SQLException {
        //测试封装概念--链接成功数据库
        Mysql.getParam("db_mysql.properties");
        //参考Mysql封装，写Oracle封装[作业2]
        //练习：链接成功Mysql------book表----增加一条记录操作
        //1.创建链接--Connection 代表Java链接成功数据库
        Connection con=
                DriverManager.getConnection(url,username,password);
        //2.执行sql---Statement 代表Java执行数据 sql
        Statement st=con.createStatement();
        //3.[CRUD操作：增删改 executeUpdate()  查 executeQuery()]
        //  String sql=
        //           "insert into book values(6,'余华','活着',79,'2010年',80,'否')";

        // int rows=st.executeUpdate(sql); // 执行增删改,返回值 int类型
        //查
        String que="select * from book";
        ResultSet row=st.executeQuery(que);
        System.out.println(row);



        String de=
                "delete from book where id=2";
        int rows = st.executeUpdate(de);
        // System.out.println("成功添加了："+rows+"一条记录");
        System.out.println("成功删除了："+rows+"一条记录");


        //4.关闭连接-- Statement--Connection

    }
}